Basé sur le travail de Erwan Coubret, https://twitter.com/ErwanCoubret.
Basé sur les données du sondage Sondage MP2I - Option du Second Semestre au 1er janvier 2022.
Import des librairies
import pandas as pd
import plotly.graph_objects as go
Import de la base de donnée (ça peut prendre un peu de temps)
url = "./data_second_semestre_option.csv" # Lien du dataset
df = pd.read_csv(url, sep=";") # les séparateurs peuvent être différents selon les fichiers .csv, mais ici il y a des ',' dans les titres des colonnes, alors il faut bien préciser qu'on sépare les colonnes grâce aux ';'
Nettoyage des données pour ne garder que celles qui nous intéressent (ici la filière)
lycees = df["Lycée de provenance"][1:]
lycees.head()
1 Clémanceau, Nantes 2 Faidherbe, Lille 3 Saint-Louis, Paris 4 Janson de Sailly, Paris 5 Descartes, Tours Name: Lycée de provenance, dtype: object
Liste des Labels
Premièrement, observons quels sont les différents moyens de classification avec leur index. Notons que leur index servira prochainement.
for i in range(df.shape[1]):
print(f"{i} : {df.columns[i]} {df.loc[0][i]}")
0 : Lycée de provenance nan 1 : Unnamed: 1 TOTAL 2 : En premier lieu, quelles sont à votre connaissance les filières disponibles dans votre lycée directement en choisisant l'option SI au second semestre ? BCPST 3 : Unnamed: 3 MP (option SI) 4 : Unnamed: 4 MP (option Info) 5 : Unnamed: 5 MPI 6 : Unnamed: 6 PC 7 : Unnamed: 7 PSI 8 : En premier lieu, quelles sont à votre connaissance les filières disponibles dans votre lycée directement en choisisant l'option SI au second semestre ? (pourcentage par établissemnt) BCPST 9 : Unnamed: 9 MP (option SI) 10 : Unnamed: 10 MP (option Info) 11 : Unnamed: 11 MPI 12 : Unnamed: 12 PC 13 : Unnamed: 13 PSI 14 : Même question pour l'option informatique BCPST 15 : Unnamed: 15 MP (option SI) 16 : Unnamed: 16 MP (option Info) 17 : Unnamed: 17 MPI 18 : Unnamed: 18 PC 19 : Unnamed: 19 PSI 20 : Même question pour l'option informatique (pourcentage) BCPST 21 : Unnamed: 21 MP (option SI) 22 : Unnamed: 22 MP (option Info) 23 : Unnamed: 23 MPI 24 : Unnamed: 24 PC 25 : Unnamed: 25 PSI 26 : Quel est votre ressenti par rapport à l'information donné par votre lycée quant aux choix d'option ? Très satisfaisant 27 : Unnamed: 27 Satisfaisant 28 : Unnamed: 28 Neutre 29 : Unnamed: 29 Insatisfaisant 30 : Unnamed: 30 Très insatisfaisant 31 : Quel est votre ressenti par rapport à l'information donné par votre lycée quant aux choix d'option ? (pourcentage) Très satisfaisant 32 : Unnamed: 32 Satisfaisant 33 : Unnamed: 33 Neutre 34 : Unnamed: 34 Insatisfaisant 35 : Unnamed: 35 Très insatisfaisant 36 : D'après vous quelle est la part de spécialité Maths/Physique dans votre classe ? nan 37 : D'après vous quelle est la part de spécialité Maths/NSI dans votre classe ? nan 38 : D'après vous quelle sera la part d'option Informatique dans votre classe ? nan 39 : D'après vous, si votre lycée impose un quota maximal pour l'option SI quel sera-t-il? nan 40 : À la rentrée 2022, quelle type de classe MPI ouvrira dans votre lycée ? Étoilé 41 : Unnamed: 41 Non-Étoilé 42 : Unnamed: 42 Demi-Étoilé (une seule classe mais deux groupes dont l'un sera annoté MPI étoile) 43 : Unnamed: 43 Je ne sais pas 44 : Unnamed: 44 Non Applicable 45 : À la rentrée 2022, quelle type de classe MPI ouvrira dans votre lycée ? (pourcentage par lycée) Étoilé 46 : Unnamed: 46 Non-Étoilé 47 : Unnamed: 47 Demi-Étoilé (une seule classe mais deux groupes dont l'un sera annoté MPI étoile) 48 : Unnamed: 48 Je ne sais pas 49 : Unnamed: 49 Non Applicable 50 : Quel est votre genre ? Homme 51 : Unnamed: 51 Femme 52 : Unnamed: 52 Autre 53 : Unnamed: 53 Ne souhaite pas se prononcer 54 : Quel est votre genre ? (pourcentage par établissement) Homme 55 : Unnamed: 55 Femme 56 : Unnamed: 56 Autre 57 : Unnamed: 57 Ne souhaite pas se prononcer 58 : Quelles étaient vos spécialités en Terminale ? Mathématiques 59 : Unnamed: 59 Physique-Chimie 60 : Unnamed: 60 NSI 61 : Unnamed: 61 Arts 62 : Unnamed: 62 LCA 63 : Unnamed: 63 HLP 64 : Unnamed: 64 HGP 65 : Unnamed: 65 LCE / LCR 66 : Unnamed: 66 SVT 67 : Unnamed: 67 SI 68 : Unnamed: 68 SES 69 : Unnamed: 69 Biologie 70 : Quelles étaient vos spécialités en Terminale ? (pourcentage par établissement) Mathématiques 71 : Unnamed: 71 Physique-Chimie 72 : Unnamed: 72 NSI 73 : Unnamed: 73 SI 74 : Unnamed: 74 Autres 75 : Avez vous bénéficié d'un dispositif "3eme spécialité" en Terminale ? Si oui, laquelle ? Mathématiques 76 : Unnamed: 76 Physique-Chimie 77 : Unnamed: 77 NSI 78 : Unnamed: 78 Autres (non implémenté) 79 : Unnamed: 79 Non 80 : Quelles étaient vos spécialités en Première ? Mathématiques 81 : Unnamed: 81 Physique-Chimie 82 : Unnamed: 82 NSI 83 : Unnamed: 83 Arts 84 : Unnamed: 84 LCA 85 : Unnamed: 85 HLP 86 : Unnamed: 86 HGP 87 : Unnamed: 87 LCE / LCR 88 : Unnamed: 88 SVT 89 : Unnamed: 89 SI 90 : Unnamed: 90 SES 91 : Unnamed: 91 Biologie 92 : Quelles étaient vos spécialités en Première ? (pourcentage par établissement) Mathématiques 93 : Unnamed: 93 Physique-Chimie 94 : Unnamed: 94 NSI 95 : Unnamed: 95 SI 96 : Unnamed: 96 Autres 97 : Sur une échelle de 0 à 10, vous êtes un ../10 en Informatique (la matière) ? nan 98 : Sur une échelle de 0 à 10, vous êtes un ../10 en Science de l'Ingénieur (la matière) ? nan 99 : Pourquoi vous êtes vous inscrit en MP2I ? J'aimais les Maths 100 : Unnamed: 100 J'aimais la Physique 101 : Unnamed: 101 J'aimais l'Informatique théorique 102 : Unnamed: 102 J'aimais l'Informatique pratique 103 : Unnamed: 103 Je fais de l'informatique depuis si longtemps que c'était une évidence 104 : Unnamed: 104 J'aimais pas la Chimie 105 : Unnamed: 105 Je ne souhaitais pas me professionaliser tout de suite 106 : Unnamed: 106 Je voulais intégrer une École d'Ingénieur 107 : Unnamed: 107 Je voulais intégrer une Grande École (X,ENS,...) 108 : Unnamed: 108 Je voulais aller en MPSI mais ainsi va la vie 109 : Unnamed: 109 J'avais accepté un voeu au hasard sur Parcoursup 110 : Unnamed: 110 J'avais fait un voeu au hasard sur Parcoursup 111 : Unnamed: 111 Je ne savais pas quoi faire d'autre 112 : Unnamed: 112 Autre(s) 113 : Pourquoi vous êtes vous inscrit en MP2I ? (pourcentage par établissement) J'aimais les Maths 114 : Unnamed: 114 J'aimais la Physique 115 : Unnamed: 115 J'aimais l'Informatique théorique 116 : Unnamed: 116 J'aimais l'Informatique pratique 117 : Unnamed: 117 Je fais de l'informatique depuis si longtemps que c'était une évidence 118 : Unnamed: 118 J'aimais pas la Chimie 119 : Unnamed: 119 Je ne souhaitais pas me professionaliser tout de suite 120 : Unnamed: 120 Je voulais intégrer une Grande École d'Ingénieur 121 : Unnamed: 121 Je voulais intégrer une Grande École (X,ENS,...) 122 : Unnamed: 122 Je voulais aller en MPSI mais ainsi va la vie 123 : Unnamed: 123 J'avais accepté un voeu au hasard sur Parcoursup 124 : Unnamed: 124 J'avais fait un voeu au hasard sur Parcoursup 125 : Unnamed: 125 Je ne savais pas quoi faire d'autre 126 : Unnamed: 126 Autre(s) 127 : Quelle option allez vous suivre au second semestre ? Informatique 128 : Unnamed: 128 Science de l'Ingénieur 129 : Unnamed: 129 La FAC m'aura avant 130 : Unnamed: 130 Je ne sais pas encore 131 : Quelle option allez vous suivre au second semestre ? (pourcentage par établissement) Informatique 132 : Unnamed: 132 Science de l'Ingénieur 133 : Unnamed: 133 La FAC m'aura avant 134 : Unnamed: 134 Je ne sais pas encore 135 : Pourquoi avoir choisi cette option ? C'était ça ou rien 136 : Unnamed: 136 Ça me plaisait beaucoup plus que l'autre 137 : Unnamed: 137 Je souhaitais absolument la filière qui en découle 138 : Unnamed: 138 Ça correspond bien plus à mes projets pour les concours 139 : Unnamed: 139 J'ai joué stratégique pour les concours (car je serais ainsi un des seuls intéressés par les écoles que je souhaite dans cette filière) 140 : Unnamed: 140 L'administration et/ou l'équipe enseignante m'a forcé la main 141 : Unnamed: 141 J'ai subi des pressions 142 : Unnamed: 142 Pile ou face 143 : Unnamed: 143 C'était la seule proposée 144 : Unnamed: 144 Autre(s) 145 : Pourquoi avoir choisi cette option ? (pourcentage par établissement) C'était ça ou rien 146 : Unnamed: 146 Ça me plaisait beaucoup plus que l'autre 147 : Unnamed: 147 Je souhaitais absolument la filière qui en découle 148 : Unnamed: 148 Ça correspond bien plus à mes projets pour les concours 149 : Unnamed: 149 J'ai joué stratégique pour les concours (car je serais ainsi un des seuls intéressés par les écoles que je souhaite dans cette filière) 150 : Unnamed: 150 L'administration et/ou l'équipe enseignante m'a forcé la main 151 : Unnamed: 151 J'ai subi des pressions 152 : Unnamed: 152 Pile ou face 153 : Unnamed: 153 C'était la seule proposée 154 : Unnamed: 154 Autre(s)
colonne_à_afficher = [i for i in range(1,2)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i] # Nom pour la légende
)
)
fig.update_layout(title=df.columns[0], # Titre pour la figure
xaxis={'categoryorder':'max descending'}) # Permet de trier de manière décroissante selon la valeur maximale de l'axe
fig.show()
colonne_à_afficher = [i for i in range(2,8)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i] # Nom pour la légende
)
)
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
xaxis={'categoryorder':'max descending'}) # Permet de trier de manière décroissante selon la valeur maximale de l'axe
fig.show()
colonne_à_afficher = [i for i in range(8,14)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].map(lambda v: float(v.split("%")[0])/100), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i]# Nom pour la légende
)
)
fig.update_traces(hovertemplate="%{y:.1f} %")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barnorm='percent') # Permet de trier de manière décroissante selon la valeur maximale de l'axe
fig.show()
colonne_à_afficher = [i for i in range(14,20)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i] # Nom pour la légende
)
)
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
xaxis={'categoryorder':'max descending'}) # Permet de trier de manière décroissante selon la valeur maximale de l'axe
fig.show()
colonne_à_afficher = [i for i in range(20,26)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].map(lambda v: float(v.split("%")[0])/100), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i]# Nom pour la légende
)
)
fig.update_traces(hovertemplate="%{y:.1f} %")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barnorm='percent') # Permet de trier de manière décroissante selon la valeur maximale de l'axe
fig.show()
colonne_à_afficher = [i for i in range(26,31)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[1:20,i+6].map(lambda v: float(v.split("%")[0].replace(',','.')))
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} %)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="stack",
xaxis={'categoryorder': 'total descending'},
legend={'traceorder':'normal'})
fig.show()
colonne_à_afficher = [i for i in range(36,38)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
l = ["Spécialités Maths/Physique", "Spécialités Maths/NSI"]
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].map(lambda v: float(v.split("%")[0].replace(',','.'))), # et la colonne choisie précédemment dans colonne_à_afficher
name = l[i-36], # Nom pour la légende
)
)
fig.update_traces(hovertemplate="%{y} %")
fig.update_layout(title="D'après vous quelle est la part de spécialités Maths/Physique, Maths/NSI dans votre classe ?", # Titre pour la figure
barmode="stack")
fig.show()
colonne_à_afficher = [i for i in range(38,39)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].map(lambda v: float(v.split("%")[0].replace(',','.'))), # et la colonne choisie précédemment dans colonne_à_afficher
name = "Option Info", # Nom pour la légende
)
)
fig.update_traces(hovertemplate="%{y} %")
fig.update_layout(title=df.columns[colonne_à_afficher[0]],
barmode="stack",
xaxis={'categoryorder': 'total descending'})
fig.show()
à prendre avec des pincettes, la question n'était pas obligatoire.
colonne_à_afficher = [i for i in range(39,40)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].map(lambda v: float(str(v).replace(',','.'))), # et la colonne choisie précédemment dans colonne_à_afficher
name = "personnes maximum", # Nom pour la légende
)
)
fig.update_traces(hovertemplate="%{y}")
fig.update_layout(title=df.columns[colonne_à_afficher[0]],
barmode="stack",
xaxis={'categoryorder': 'total descending'})
fig.show()
Note: plusieurs réponses étaient autorisées à cette question.
colonne_à_afficher = [i for i in range(40,45)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
l = ["Étoilé", "Demi-Étoilé", "Non-Étoilé", "Je ne sais pas", "Non applicable"]
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = l[i-40], # Nom pour la légende
customdata=df.iloc[1:20,i+5].map(lambda v: float(v.split("%")[0].replace(',','.')))
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} %)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
legend={'traceorder':'normal'})
fig.show()
colonne_à_afficher = [i for i in range(50,54)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[1:20,i+4].map(lambda v: float(v.split("%")[0].replace(',','.')))
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="stack",
xaxis={'categoryorder': 'total descending'},
legend={'traceorder':'normal'})
fig.show()
colonne_à_afficher = [i for i in range(58,70)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[1:20,i+12].map(lambda v: float(v.split("%")[0].replace(',','.'))),
orientation='v'
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'total descending'},
legend={'traceorder':'normal'})
fig.show()
colonne_à_afficher = [i for i in range(80,92)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[1:20,i+12].map(lambda v: float(v.split("%")[0].replace(',','.'))),
orientation='v'
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'total descending'})
fig.show()
colonne_à_afficher = [i for i in range(97,99)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
l = ["Informatique", "Science de l'Ingénieur"]
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = l[i-97], # Nom pour la légende
orientation='v'
)
)
fig.update_traces(hovertemplate="%{y}")
fig.update_layout(title="Sur une échelle de 0 à 10, en moyenne, vous êtes des .../10 en Info/SI", # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'category descending'})
fig.show()
colonne_à_afficher = [i for i in range(99,113)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
y = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
x = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[1:20,i+12].map(lambda v: float(v.split("%")[0].replace(',','.'))),
orientation='h'
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'total descending'})
fig.show()
colonne_à_afficher = [i for i in range(99,113)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
y = df["Lycée de provenance"][20:21], # on affiche selon le lycée en abscisse
x = df.iloc[20:21,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[21:22,i].map(lambda v: float(v.split("%")[0].replace(',','.'))),
orientation='h'
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'total descending'})
fig.show()
colonne_à_afficher = [i for i in range(127,131)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[1:20,i+4].map(lambda v: float(v.split("%")[0].replace(',','.'))),
orientation='v'
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'total descending'})
fig.show()
colonne_à_afficher = [i for i in range(127,131)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
y = df["Lycée de provenance"][20:21], # on affiche selon le lycée en abscisse
x = df.iloc[20:21,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[21:22,i].map(lambda v: float(v.split("%")[0].replace(',','.'))),
orientation='h'
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'total descending'})
fig.show()
colonne_à_afficher = [i for i in range(135,145)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
x = df["Lycée de provenance"][1:20], # on affiche selon le lycée en abscisse
y = df.iloc[1:20,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[1:20,i+10].map(lambda v: float(v.split("%")[0].replace(',','.'))),
orientation='v'
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'total descending'})
fig.show()
colonne_à_afficher = [i for i in range(135,145)] # On met ici les index des données que l'on souhaite afficher dans la liste, ici le nombre de demandes sans/avec internat correspondent aux index 17 et 20
fig = go.Figure() # Création de la figure avec plotly
for i in colonne_à_afficher:
fig.add_trace( # Ajout d'un nouvel axe
go.Bar( # Ici Bar pour créer un histogramme
y = df["Lycée de provenance"][20:21], # on affiche selon le lycée en abscisse
x = df.iloc[20:21,i].astype(int), # et la colonne choisie précédemment dans colonne_à_afficher
name = df.loc[0][i], # Nom pour la légende
customdata=df.iloc[21:22,i].map(lambda v: float(v.split("%")[0].replace(',','.'))),
orientation='h'
)
)
fig.update_traces(hovertemplate="%{y} (soit %{customdata} % des sondés)")
fig.update_layout(title=df.columns[colonne_à_afficher[0]], # Titre pour la figure
barmode="group",
xaxis={'categoryorder': 'total descending'})
fig.show()